package com.hxkj.dao;

import com.hxkj.domain.po.Site;

import java.util.List;

/**
* 数据操作接口
*
* @author: chenwei
* @version: 1.0
* @datetime: 2018-05-21 17:59:26
*
*/
public interface SiteDao {

    /**
     * 根据主键查询Site对象
     *
     * @param siteId
     * @return Site对象
     */
    Site get(Long siteId);

    /**
     * 根据主键查询Site对象
     *
     * @param site
     * @return Site对象
     */
    Site selectSiteName(Site site);

    /**
     * 根据查询条件查询符合条件的Site对象
     *
     * @param site
     * @return 符合条件的Site对象List
     */
    List<Site> getList(Site site);

    /**
     * 根据查询条件查询符合条件的Site对象
     *
     * @param site
     * @return 符合条件的Site对象List
     */
    List<Site> getSiteList(Site site);

    /**
     * 查询站点切换列表
     *
     * @param site
     * @return 符合条件的Site对象List
     */
    List<Site> getSwitcherSiteList(Site site);

    /**
     * @return java.util.List<com.hxkj.domain.po.Site>
     * @author Mr.zhu
     * @Description getSiteByUserId  根据 userId 查询登录用户可切换的站点信息
     * @Date 10:44 2018/5/30
     * @Param [site]  站点
     **/
    List<Site> getSwitcherByUserId(Site site);

    /**
     * 根据主键删除Site对象
     *
     * @param siteId
     * @return 影响条件数
     */
    int delete(Long siteId);

    /**
     * 根据条件删除符合条件的Site对象
     *
     * @param site
     * @return 影响条件数
     */
    int delete(Site site);

    /**
     * 插入Site对象
     *
     * @param site
     * @return 影响条件数
     */
    int save(Site site);

    /**
     * 更新Site对象
     *
     * @param site
     * @return 影响条件数
     */
    int update(Site site);

    /**
     * @return java.util.List<com.hxkj.domain.po.Site>
     * @author Mr.zhu
     * @Description getSiteByUserId  根据 userId 查询登录用户可查看的站点信息
     * @Date 10:44 2018/5/30
     * @Param [site]  站点
     **/
    List<Site> getSiteByUserId(Site site);

    /**
    * @author Mr.zheng
    * @Description getSiteById 根据Id获取站点信息
    * @Date 20:18 2018/6/14
    * @Param [siteId]
    * @return com.hxkj.domain.po.Site
    **/
    Site getSiteById(Long siteId);

    /**
    * @author Mr.zheng
    * @Description getShowSiteList 获取启用状态的所有站点
    * @Date 16:05 2018/6/21
    * @Param [site]
    * @return java.util.List<com.hxkj.domain.po.Site>
    **/
    List<Site> getShowSiteList(Site site);

    /**
    * @author Mr.zheng
    * @Description getCountSite 根据站点ID查看该站点是否存在或被禁用
    * @Date 17:50 2018/6/21
    * @Param [siteId]
    * @return int
    **/
    int getCountSite(Long siteId);

    /**
     * 根据站点ID获取站点LOGO
     * @param siteId
     * @return
     */
    String getSiteLogo(Long siteId);

    /**
     * 站点信息包括站点的类型名称
     *
     * @param site
     * @return 符合条件的Site对象List
     */
    List<Site> getSiteInfoList(Site site);
}
